/**
 * 课程表显示相关类型定义
 */

import { Course } from './course';

export interface ScheduleCell {
  /** 课程信息，如果为null表示空课程 */
  course: Course | null;
  /** 星期几 (1-7) */
  day: number;
  /** 节次 (1-12) */
  section: number;
  /** 是否被跨节课程占用 */
  isSpanned: boolean;
  /** 课程颜色 */
  color?: string;
}

export interface WeekInfo {
  /** 当前周次 */
  currentWeek: number;
  /** 总周数 */
  totalWeeks: number;
  /** 开学日期 */
  startDate: Date;
  /** 学期结束日期 */
  endDate: Date;
}

export interface ScheduleGrid {
  /** 7x6的网格数据 (7天 x 6个时间段) */
  cells: ScheduleCell[][];
  /** 周信息 */
  weekInfo: WeekInfo;
}

export interface DayHeader {
  /** 星期几 (1-7) */
  day: number;
  /** 星期名称 */
  dayName: string;
  /** 日期 */
  date: string;
  /** 是否是今天 */
  isToday: boolean;
}

export interface TimeSlot {
  /** 时间段ID */
  id: number;
  /** 显示文本 */
  label: string;
  /** 开始节次 */
  startSection: number;
  /** 结束节次 */
  endSection: number;
}
